package v1alpha1

type BladeCommonSpec struct {
	// +optional
	// +kubebuilder:validation:Minimum=0
	EffectCount int `json:"effectCount,omitempty"`

	// +optional
	// +kubebuilder:validation:Minimum=0
	// +kubebuilder:validation:Maximum=100
	EffectPercent int `json:"effectPercent,omitempty"`

	// +optional
	JavaHome string `json:"javaHome,omitempty"`

	// +optional
	// +kubebuilder:validation:Minimum=0
	Pid int `json:"pid,omitempty"`

	// +optional
	Process string `json:"process,omitempty"`
}

type BladeChaosCustomStatus struct {
	// +optional
	PrepareUID string `json:"prepareUID,omitempty"`

	// +optional
	CreateUID string `json:"createUID,omitempty"`
}

// BladeChaosStatus represents the status of a BladeChaos
type BladeChaosStatus struct {
	ChaosStatus `json:",inline"`

	BladeChaosCustomStatus `json:",inline"`
}

type BladeOnlyCreateChaosCustomStatus struct {
	// +optional
	CreateUID string `json:"createUID,omitempty"`
}

type BladeOnlyCreateChaosStatus struct {
	ChaosStatus `json:",inline"`

	BladeOnlyCreateChaosCustomStatus `json:",inline"`
}
